package com.group.www.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.group.www.dao.impl.BrandInfoDao;
import com.group.www.interfaces.BrandinfoServiceI;
import com.group.www.pojo.BrandInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@com.alibaba.dubbo.config.annotation.Service
public class SimpleBrandInfoService implements BrandinfoServiceI {

     @Autowired
     private BrandInfoDao brandInfoDao;

    /**
     * 用于没有品牌商密码，暂时用remark字段做密码，品牌商登录的方法
     *
     * @param bname  品牌名称
     * @param remark 备注信息，现改为记录的密码
     * @return 品牌商的实体类信息
     */
    @Override
    public BrandInfo brandLogin(String bname, String remark) {
        return brandInfoDao.brandLogin(bname,remark);
    }

    /**
     * 分页查询品牌商的商品信息的方法，返回一个包含数据的分页对象
     *
     * @param brandId   品牌商的id，此条件用于查询具体的品牌商的商品
     * @param pageIndex 分页模型的当前页，用于记录跳转的页数
     * @param pageSize  分页模型的每页记录数，用于记录煤业所查询的最大条数
     * @param brandName 根据商品名称进行模糊查询的条件，当为空时查询该品牌商的全部信息
     * @return 返回一个分页对象，包含查询的当前页数据
     */
    @Override
    public PageInfo<BrandInfo> queryAll(int brandId, int pageIndex, int pageSize, Object brandName) {
        PageHelper.startPage(pageIndex,pageSize,true);
        List<BrandInfo> brandInfos = brandInfoDao.queryAll(brandId, brandName);
        PageInfo<BrandInfo> data=new PageInfo<>(brandInfos);
        return data;
    }

    /**
     * 根据Id查询数据
     * 传入一个Id值，查询改ID 品牌商的信息，回显数据
     *
     * @param brandId
     * @return 返回该Id用户数据
     */
    @Override
    public BrandInfo queryById(Integer brandId) {
        return brandInfoDao.queryById(brandId);
    }

    /**
     * 修改品牌商信息
     * 根据回显的数据，修改次品牌商的信息
     *
     * @param brandInfo
     * @return 返回true或者false, 判断是否添加成功
     */
    @Override
    public boolean updateBrand(BrandInfo brandInfo) {
        brandInfoDao.update(brandInfo);
        return true;
    }

    /**
     * 添加品牌商
     * 获取页面的数据，添加在实体类中
     *
     * @param brandInfo
     * @return 返回true或者false, 判断是否添加成功
     */
    @Override
    public boolean addBrand(BrandInfo brandInfo) {
        brandInfoDao.add(brandInfo);
        return true;
    }

    /**
     * 删除品牌商，单个删除
     * 删除品牌商
     *
     * @param brandInfo
     * @return 返回true或者false, 判断是否添加成功
     */
    @Override
    public boolean daleteBrand(BrandInfo brandInfo) {
        brandInfoDao.deleteById(brandInfo.getBrandid());
        return true;
    }

    /**
     * 删除品牌商，多个删除
     * 删除品牌商多条信息
     *
     * @param brandIs
     * @return 返回true或者false, 判断是否添加成功
     */
    @Override
    public boolean daleteMany(String brandIs) {
        for (String id:brandIs.split(",")) {
            BrandInfo brandInfo=new BrandInfo();
            brandInfo.setBrandid(Integer.parseInt(id));
            this.daleteBrand(brandInfo);
        }
        return true;
    }
}
